Some people
use Org-mode for keeping track of projects, but still prefer a
standard calendar application for anniversaries and appointments.
In this case it can be useful to show deadlines and other
time-stamped items in Org files in the calendar application.
Org-mode can export calendar information in the standard
iCalendar format. If you also want to have TODO entries included
in the export, configure the variable
org-icalendar-include-todo. Plain timestamps are
exported as VEVENT, and TODO items as VTODO. It will also create
events from deadlines that are in non-TODO items. Deadlines and
scheduling dates in TODO items will be used to set the start and
due dates for the TODO entry1. As categories, it will use
the tags locally defined in the heading, and the file/tree
category2. See the variable
org-icalendar-alarm-time for a way to assign alarms
to entries with a time.
The iCalendar standard requires
each entry to have a globally unique identifier (UID). Org
creates these identifiers during export. If you set the variable
org-icalendar-store-UID, the UID will be stored in
the :ID: property of the entry and re-used next time
you report this entry. Since a single entry can give rise to
multiple iCalendar entries (as a timestamp, a deadline, a
scheduled item, and as a TODO item), Org adds prefixes to the
UID, depending on what triggered the inclusion of the entry. In
this way the UID remains unique, but a synchronization program
can still figure out from which entry all the different instances
originate.
org-export-icalendar-this-file)org-export-icalendar-all-agenda-files)org-agenda-files. For each of these files, a
separate iCalendar file will be written. org-export-icalendar-combine-agenda-files)org-agenda-files and write it to the file given by
org-combined-agenda-icalendar-file.The export will honor
SUMMARY, DESCRIPTION and LOCATION3 properties if the
selected entries have them. If not, the summary will be derived
from the headline, and the description from the body (limited to
org-icalendar-include-body characters).
How this calendar is best read and updated, depends on the application you are using. The FAQ covers this issue.
[1] See the variables
org-icalendar-use-deadline and
org-icalendar-use-scheduled.
[2] To add inherited tags or the TODO state,
configure the variable
org-icalendar-categories.
[3] The LOCATION property can be inherited
from higher in the hierarchy if you configure
org-use-property-inheritance accordingly.